package cn.bdqn.yan.mapper;

import cn.bdqn.yan.pojo.Role;
import cn.bdqn.yan.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface UserMapper {
    /**
     *根据用户名和角色id查询用户信息
     * @param username
     * @param userrole
     * @return
     */
    List<User> getuserlist(@Param("username")String username,@Param("userrole")Integer userrole);
    /**
     * 通过id修改指定用户信息
     * @param user
     * @return
     */
    public Integer modify(User user);
    /**
     * 数组的方式传参
     * 根据用户角色列表。获取该角色列表下用户列表信息-foreach-array
     * @param roleIds
     * @return
     */
    public List<User> getUserByRoleId_foreach_array(Integer[] roleIds);

    /**
     *list集合的方式传参
     * @param rolelist
     * @return
     */
    public List<User> getUserByRoleId_foreach_list(List<Integer> rolelist);

    /**
     * Map的方式传参
     * @param conditionMap
     * @return
     */
    public List<User> getUserByConditionMap_foreach_map(Map<String,Object> conditionMap);
    /**
     * 将list集合封装成Map方式作为参数
     * @param roleMap
     * @return
     */
    public List<User> getUser_foreach_ByMap(Map<String,Object> roleMap);
    /**
     *根据多条件查询
     * @param username
     * @param userrole
     * @param usercode
     * @param creationDate
     * @return
     */
    public List<User> getUserList_choose(@Param("username")String username,
                                         @Param("userrole")Integer userrole,
                                         @Param("usercode")String usercode,
                                         @Param("creationDate")String creationDate);
    /**
     * 查询表中数据条数
     * @return
     */
    public Integer count();
    /**
     * 分页查询
     * @param username
     * @param userrole
     * @param currentpage
     * @param pagesize
     * @return
     */
    public List<Role> getUserListpage1(@Param("username")String username, @Param("userrole")Integer userrole, @Param("from")Integer currentpage,
                                       @Param("pagesize")Integer pagesize);
    public List<Role> getUserListpage2(@Param("username")String username, @Param("userrole")Integer userrole, @Param("from")Integer currentpage,
                                       @Param("pagesize")Integer pagesize);
    public List<User> getUserListpage3(@Param("username")String username, @Param("userrole")Integer userrole, @Param("from")Integer currentpage,
                                       @Param("pagesize")Integer pagesize);
}
